package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;

/**
 * 客户优惠券
 *
 * @TableName client_coupon
 */
@TableName(value = "client_coupon")
@Data
public class ClientCoupon implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 客户ID
     */
    private String clientId;

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 优惠券名称
     */
    private String couponName;

    /**
     * 优惠描述
     */
    private String remark;

    /**
     * 使用门槛 0 无使用门槛
     */
    private BigDecimal threshold;

    /**
     * 优惠内容
     */
    private BigDecimal discounts;

    /**
     * 有效开始时间
     */
    private Timestamp validStartTime;

    /**
     * 有效结束时间
     */
    private Timestamp validEndTime;

    /**
     * 参与点位，0 表示全部点位，1多个点位
     */
    private Integer position;

    /**
     * 参与套餐：0表示全部套餐， 1多个套餐
     */
    private Integer combo;

    /**
     * 使用规则
     */
    private String rule;

    /**
     * 状态0失效1正常2已使用3已过期4待开始
     */
    private Integer status;

    /**
     * 核销人
     */
    private Long verifyUserId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date createTime;

    /**
     * 核销时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date verifyTime;

    /**
     * 券类型1满减券2折扣券3单品券4新人券5霸王免单券
     */
    private Integer type;

    /**
     * 优惠方式1满减2折扣
     */
    private Integer discountsType;

    /**
     * 到期延期天数
     */
    private Integer postponeDay;

    /**
     * 优惠券礼包id
     */
    private Long couponPackId;

    /**
     * 失效时间
     */
    private Timestamp invalidTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 储值记录id
     */
    private Long clientBillId;
}